<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>mpt_demo_pwa1</title>
<style type="text/css">
	body {background-color: white; color: black; font-family:sans-serif; font-size:medium;}
	a:link {color: #3300ff;}
	a:visited {color: #663399;}
	a:hover {color:#0099ff;}
	a:active {color: #0066cc;}
	a.button {text-decoration:none;}
	
	table.nav  {background-color: #dbddff;}
	table.body {margin-top:2ex; margin-bottom:2ex;}
	table.programlistingindent {margin-left:32px;}
	
	img { margin-bottom:0px; margin-top:0px;}
	tt {margin-left:0.5em; margin-right:0.5em; font-weight:lighter;}
	
	p {margin-top:0ex;}
	p.synopsis {margin-left:32px;}
	p.programlistingindent {margin-left:32px;}
	p.citetitle {margin-left:2em;}
	
	ul ul {list-style-type:square;}
	ul li p {margin-top:0ex; margin-bottom:.5ex; padding:0}
	ol li p {margin-top:0ex; margin-bottom:.5ex; padding:0}
	
	h1.reftitle {color:#a90000;}
	h1.reftitle {font-size:3.7ex; margin-top:0; margin-bottom:0; font-weight:bold}
	h1.title {color:black; font-size:4ex; margin-top:1ex; font-weight:bold}
	h2.title {color:#bd0000; margin-top:1ex; margin-bottom:.9ex; font-weight:bold; font-size:3ex}
	h3.title {color:#bd0000; margin-top:1ex; margin-bottom:.9ex; font-weight:bold; font-size:2.5ex}
	h4.title {color:#bd0000; margin-top:1ex; margin-bottom:.9ex; font-weight:bold; font-size:2ex}
	h2 {color:#bd0000; margin-top:1ex; margin-bottom:.9ex; font-weight:bold; font-size:2.5ex}
	h3 {color:#bd0000; margin-top:1ex; margin-bottom:.9ex; font-weight:bold; font-size:2ex} 
	
	pre.programlisting {margin-left:32px;}
	pre.synopsis {margin-left:32px;}
	
	
	.categorytitle {margin-top:8px; padding-top:0px;}
	.categorylist {background-color: #e1e6f2;}
 	</style>
</head>
<body>
<a name="top_of_page"></a><p style="font-size:1px;"></p>
<h1 class="reftitle">mpt_demo_pwa1</h1>
<h2>Purpose</h2>
<p>Demonstration for modeling PWA systems</p>
<h2>Syntax</h2>
<pre class="synopsis">mpt_demo_pwa1</pre>
<h2>Description</h2>
<p></p>
        Demonstration for modeling PWA system comprising of two linear time-invariant models:        
        <p class="programlistingindent"><img src="../../../fig/mpt/demos/mpt_demo_pwa13.png" alt="../../../fig/mpt/demos/mpt_demo_pwa13.png"></p>
	
   <h2>Example(s)</h2>
<h3>Example 
				1</h3>  PWA systems are created by defining each dynamics as an LTI system: <pre class="programlisting"> B = [0; 1]; C = [1 0]; D = 0; </pre>
<pre class="programlisting"></pre> First dynamics: <pre class="programlisting"> alpha = -pi/3; </pre>
<pre class="programlisting"></pre>
<pre class="programlisting"> A1 = 0.8*[cos(alpha) -sin(alpha); sin(alpha) cos(alpha)]; </pre>
<pre class="programlisting"></pre>
<pre class="programlisting"> dyn1 = LTISystem('A', A1, 'B', B, 'C', C, 'D', D); </pre>
<pre class="programlisting"></pre> We need to tell that dynamics 1 should be active if <img src="../../../fig/mpt/demos/mpt_demo_pwa11.png" alt="../../../fig/mpt/demos/mpt_demo_pwa11.png">: <pre class="programlisting">dyn1.setDomain('x', Polyhedron([1 0], 1)); </pre>
<pre class="programlisting"></pre> Second dynamics: <pre class="programlisting">alpha = pi/3;</pre>
<pre class="programlisting"></pre>
<pre class="programlisting"> A2 = 0.8*[cos(alpha) -sin(alpha); sin(alpha) cos(alpha)]; </pre>
<pre class="programlisting"></pre>
<pre class="programlisting"> dyn2 = LTISystem('A', A2, 'B', B, 'C', C, 'D', D); </pre>
<pre class="programlisting"></pre> Region of validity of the dynamics (<img src="../../../fig/mpt/demos/mpt_demo_pwa12.png" alt="../../../fig/mpt/demos/mpt_demo_pwa12.png"> ): <pre class="programlisting"> dyn2.setDomain('x', Polyhedron([-1 0], 0)); </pre>
<pre class="programlisting"></pre> Create the PWA description using an array of LTI systems: <pre class="programlisting"> pwa = PWASystem([dyn1 dyn2]); </pre>
<pre class="programlisting">State/input/output constraints not imported, set them manually afterwards.
</pre> Optionally we can set constraints: <pre class="programlisting"> pwa.x.min = [-10; -10]; </pre>
<pre class="programlisting"></pre>
<pre class="programlisting"> pwa.x.max = [10; 10]; </pre>
<pre class="programlisting"></pre>
<pre class="programlisting"> pwa.y.min = -10; </pre>
<pre class="programlisting"></pre>
<pre class="programlisting"> pwa.y.max = 10; </pre>
<pre class="programlisting"></pre>
<pre class="programlisting"> pwa.u.min = -1; </pre>
<pre class="programlisting"></pre>
<pre class="programlisting"> pwa.u.max = 1; </pre>
<pre class="programlisting"></pre> Define an on-line MPC controller for such a system <pre class="programlisting"> horizon = 2; </pre>
<pre class="programlisting"></pre>
<pre class="programlisting"> onl_ctrl = MPCController(pwa, horizon); </pre>
<pre class="programlisting"></pre> Set one-norm penalties used in the cost function: <pre class="programlisting">onl_ctrl.model.x.penalty = OneNormFunction(10*eye(2)); </pre>
<pre class="programlisting"></pre>
<pre class="programlisting">onl_ctrl.model.u.penalty = OneNormFunction(1); </pre>
<pre class="programlisting"></pre> Construct the explicit solution <pre class="programlisting"> exp_ctrl = onl_ctrl.toExplicit(); </pre>
<pre class="programlisting">mpt_plcp: 6 regions
mpt_plcp: 7 regions
mpt_plcp: 6 regions
mpt_plcp: 13 regions
-&gt; Generated 4 partitions.
</pre> Obtain the closed-loop optimizers for a particular initial condition <pre class="programlisting"> x0 = [-4; 0]; </pre>
<pre class="programlisting"></pre>
<pre class="programlisting"> Uonl = onl_ctrl.evaluate(x0) </pre>
<pre class="programlisting">
Uonl =

    -1

</pre>
<pre class="programlisting"> Uexp = exp_ctrl.evaluate(x0) </pre>
<pre class="programlisting">
Uexp =

    -1

</pre>
<p></p>
<table class="nav" summary="Navigation aid" border="0" width="100%" cellpadding="0" cellspacing="0"><tr valign="top">
<td align="left" width="20">
<a href="mpt_demo_sets1.html" class="button">&#9664;</a>  </td>
<td align="left">mpt_demo_sets1</td>
<td>  </td>
<td align="right">mpt_demo_lti3</td>
<td align="right" width="20"><a href="mpt_demo_lti3.html" class="button">&#9654;</a></td>
</tr></table>
<br><p>©  <b>2003-2013</b>     Michal Kvasnica: STU Bratislava,    <a href="mailto:michal.kvasnica@stuba.sk">michal.kvasnica@stuba.sk</a></p>
</body>
</html>
